The present invention relates generally to a computer system for generating user interfaces and, more particularly, to a system that generates a user interface for controlling distributed devices.
A large environment, such as a large building, a factory, or a large house, may have hundreds and thousands of devices that control various systems within the environment. These systems may include lighting systems, heating systems, elevators, and various electronic systems (e.g., monitors, cameras, and CD players). In such large environments, the controlling of the devices can be cumbersome. Each device may provide a control panel through which the device can be controlled. For example, a CD player may have a control panel on it for controlling the device to eject the CDs, to pause the CD, and so on. These devices may also provide an electronic interface through which the device can be controlled by a computer. A computer that is connected to the electronic interface may provide a user interface through which a user can control the device. These devices may be connected to a communications channel, such as a serial link, so that a central computer can control the devices. The connections to the communications channel may be direct when the device has an embedded interface to the communications channel or may be indirect by being connected to a computer system that is then connected to the communications channel. To control the devices from a central location, a user interface for each device needs to be developed for the computer at the central location. The development of the user interfaces for controlling these devices from a remote location can be expensive and time-consuming. Moreover, whenever new devices are added to the environment, new user interfaces also need to be developed so that the new devices can be controlled remotely.
In certain environments, such as a large house, it may be desirable to remotely control the devices from various locations rather than at a central location. In addition, it may be desirable to allow control of only certain devices from each location so that the user interface can be customized to the devices that can be controlled. For example, within a media room it may be desirable to control all the devices within that room and to control certain devices (e.g., lights) in adjacent rooms. The use of the same user interface, which is intended for controlling all the devices in an environment from a central location, would be cumbersome if used at multiple locations where it is only desired to control certain devices. For example, it would be cumbersome to have a user interface for controlling all devices within a large building, when only one type of device (e.g., a light switch) should logically be controlled from that location.
A method and system for generating a user interface for controlling software components through a user control point device is provided. The user interface system provides multiple software components that each can provide a user interface component. Each user interface component provides a user interface for the corresponding software component. A user control point component requests each software component to provide its user interface component. The user control point component then displays an indication of each software component. In response to the selection of a software component, the user control point component requests the user interface component for that software component to display its user interface through the control point device. When a user interacts with that user interface, the user interface component notifies the corresponding software component of the interaction. The user control point component may have an associated space (e.g., room within a house). The user control point component may identify each software component associated with that space and provide a user interface for the software components through their user interface components. In addition, a software component may provide a user interface component to more than one user control point component. In this way, multiple users can be controlling the software component simultaneously through different user control point devices. In one embodiment, the user interface component that is provided by a software component is customized to a combination of the user control point device and the particular software component that is requesting the user interface component.